[整理]Unity3D游戏开发之Lua |
您所在的位置:网站首页 › unity3d lua算法解谜 › [整理]Unity3D游戏开发之Lua |
一、Lua堆栈 如果我们想要理解Lua语言与其它语言交互的实质,我们首先就要理解Lua堆栈。简单来说,Lua语言之所以能和C/C++进行交互,主要是因为存在这样一个无处不在的虚拟栈。栈的特点是先进后出,在Lua语言中,Lua堆栈是一种索引可以是正数或者负数的结构,并规定正数1永远表示栈底,负数-1永远表示栈顶。换句话说呢,在不知道栈大小的情况下,我们可以通过索引-1取得栈底元素、通过索引1取得栈顶元素。下面呢,我们通过一个实例来加深我们对于这段话的理解: [cpp] view plain copy #include extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } using namespace std; int main() { //创建Lua环境 lua_State* L=lua_open(); //打开Lua标准库,常用的标准库有luaopen_base、luaopen_package、luaopen_table、luaopen_io、 //luaopen_os、luaopen_string、luaopen_math、luaopen_debug luaL_openlibs(L); //压入一个数字20 lua_pushnumber(L,20); //压入一个数字15 lua_pushnumber(L,15); //压入一个字符串Lua lua_pushstring(L,"Lua"); //压入一个字符串C lua_pushstring(L,"C"); //获取栈元素个数 int n=lua_gettop(L); //遍历栈中每个元素 for(int i=1;i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |